// 导入express
const express = require("express");
// 创建路由对象
const router = express.Router();
// 导出处理函数
const articleHandler = require("../router_handler/article.js");
// 导入校验表单数据的包
const expressJoi = require("@escook/express-joi");
// 导入校验规则对象
const { add_article_schema } = require("../schema/article.js");
// 导入解析formdata格式数据的包
const multer = require("multer");
// 导入path核心模块
const path = require("path");
// 创建multer的实例对象，通过dest属性指定文件的存放路径
const upload = multer({ dest: path.join(__dirname, "../uploads") });
/* 
  因为express.urlencode()中间件无法解析multipart/form-data格式的请求体数据
  所以需要multer来解析multipart/form-data格式的表单数据
*/

// upload.single() 是一个局部生效的中间件，用来解析 FormData 格式的表单数据
// 将文件类型的数据，解析并挂载到 req.file 属性中
// 将文本类型的数据，解析并挂载到 req.body 属性中
//发布新文章
router.post(
  "/add",
  upload.single("cover_img"),
  expressJoi(add_article_schema),
  articleHandler.addArticle
);
// 导出路由对象
module.exports = router;
